1. Technical Field
This invention relates in general to computers and, more particularly, to storage of state information at power-down.
2. Description of the Related Art
As personal computers become more prevalent in today""s society, the amount of energy used by computers has become a significant concern. Additionally, portable computers typically use a battery as their power source, and batteries typically can power a computer from two to six hours. It is desirable to extend battery life as long as possible.
The most effective technique for conserving energy, from an energy standpoint, is to turn off the computer while it is not being used. This technique is impractical for a number of reasons. First, some functions of the computer are lost when the computer is off, such as receiving fax and data communications over the telephone system. Second, restarting the computer is a time consuming procedure. Third, even after the computer is restarted, it does not return to the state as it was when the user decided to power-down. Therefore, the user must re-execute all application programs and open files as they were at power-down to restore the state of the computer, if the prior state is desired.
When the computer is initially powered, it looks for a boot (or xe2x80x9cboot strapxe2x80x9d) program, typically stored in the system BIOS (basic input/output system) for an MS-DOS (Microsoft disk operating system) operating system (from Microsoft Corporation of Redmond, Wash.), or similar program. The boot program provides the code to begin loading the operating system. In an IBM-compatible (International Business Machines Company of Armonk, N.Y.) operating system using MS-DOS, two files, are initially loadedxe2x80x94autoexec.bat and config.sys, which control the set-up of the computer on power-up. Other operating systems use similar files to define the correct initiation procedure. Among other information, autoexec.bat and config.sys provide information which indicates the proper drivers for the hardware being used in the system. Also, these files may specify other programs which the user desires to have open at start-up.
When a computer is turned off, all of this information is lost, and the entire start-up procedure must be repeated, which can take several minutes, depending upon the size of the drivers and start-up programs. Additionally, in order to prevent loss of data from active programs, each program must be closed before turning off the computer""s power. Thus, users may seldom turn off their computers, even during fairly long periods of inactivity, because of the time involved in shut down and start up.
In order to conserve energy, many computers use reduced power modes where some or all of their resources are operated at low speed, or shut off completely, to reduce power in certain situations. For example, after detecting a period of inactivity, the computer may reduce the processor""s frequency and slow the refresh of the DRAM (dynamic random access memory) cells. This cycle is referred to as xe2x80x9csuspendxe2x80x9d mode. When activity resumes, the normal operating characteristics are restored.
Another technique which has been used in the past is xe2x80x9csleepxe2x80x9d or xe2x80x9chibernatexe2x80x9d mode, where the state of the computer is stored to the hard drive upon entering the hibernate mode. The copied data includes data from the CPU (central processing unit) registers, the CMOS (complementary metal oxide semiconductor) registers, the video memory and the DRAM. Upon rebooting the computer, the state of the computer is restored to its pre-hibernation state by transferring the state data from the hard drive back to the respective locations in the computer.
This technique has several limitations. First, a large amount of hard drive memory must be allocated, mostly for the DRAM and video memories. In order to avoid problems with modification of the system memory, such as increasing the video memory or the main (DRAM) memory, the amount of hard drive storage must include space for expansion. To completely avoid the possibility of having reserved too little space on the hard drive, a space equal to the entire address space of the CPU and the entire address space of the video card must be reserved. With present day microprocessors having an address space equal to four gigabytes, such a solution is impractical.
Another problem is that after power down, the device drivers are no longer in memory. Consequently, the transfer of data from the hard drive to the various memories is performed using default drivers, which could result in errors in some case.
Therefore, a need has arisen for a method of safely and efficiently restoring the state of a computer after power down at high speed.
The computer system of the present invention comprises a non-volatile semiconductor memory coupled to a processor and a plurality of devices having internal memories for storing configuration information. System Configuration information is transferred to a flash EEPROM (electrically erasable programmable read only memory) prior to power-down.
The present invention provides significant advantages over the prior art. First, all devices, such as a sound card, hard drive, I/O (input/output), and so on, are not used until they have been properly initialized. Second, prior operation state of the computer system can be quickly restored upon power-up. Third, the user can return to the exact state prior to power down, without reloading application programs and files. Fourth, since returning to a prior state is simplified, the computer system may be powered down more often, resulting in vastly improved power use. Fifth, the amount of non-volatile semiconductor memory can be added as needed.